﻿using System.Collections.Generic;

namespace com.binance.client.model.enums
{
	 

	public sealed class TransferMasterType
	{


	  public static readonly TransferMasterType MASTER_TRANSFER_IN = new TransferMasterType("MASTER_TRANSFER_IN", InnerEnum.MASTER_TRANSFER_IN, "master-transfer-in");
	  public static readonly TransferMasterType MASTER_TRANSFER_OUT = new TransferMasterType("MASTER_TRANSFER_OUT", InnerEnum.MASTER_TRANSFER_OUT, "master-transfer-out");
	  public static readonly TransferMasterType MASTER_POINT_TRANSFER_IN = new TransferMasterType("MASTER_POINT_TRANSFER_IN", InnerEnum.MASTER_POINT_TRANSFER_IN, "master-point-transfer-in");
	  public static readonly TransferMasterType MASTER_POINT_TRANSFER_OUT = new TransferMasterType("MASTER_POINT_TRANSFER_OUT", InnerEnum.MASTER_POINT_TRANSFER_OUT, "master-point-transfer-out");

	  private static readonly IList<TransferMasterType> valueList = new List<TransferMasterType>();

	  static TransferMasterType()
	  {
		  valueList.Add(MASTER_TRANSFER_IN);
		  valueList.Add(MASTER_TRANSFER_OUT);
		  valueList.Add(MASTER_POINT_TRANSFER_IN);
		  valueList.Add(MASTER_POINT_TRANSFER_OUT);
	  }

	  public enum InnerEnum
	  {
		  MASTER_TRANSFER_IN,
		  MASTER_TRANSFER_OUT,
		  MASTER_POINT_TRANSFER_IN,
		  MASTER_POINT_TRANSFER_OUT
	  }

	  public readonly InnerEnum innerEnumValue;
	  private readonly string nameValue;
	  private readonly int ordinalValue;
	  private static int nextOrdinal = 0;
	  private readonly string code;

	  internal TransferMasterType(string name, InnerEnum innerEnum, string side)
	  {
		this.code = side;

		  nameValue = name;
		  ordinalValue = nextOrdinal++;
		  innerEnumValue = innerEnum;
	  }

	  public override string ToString()
	  {
		return code;
	  }

//JAVA TO C# CONVERTER NOTE: Fields cannot have the same name as methods:EnumLookup

		public static IList<TransferMasterType> values()
		{
			return valueList;
		}

		public int ordinal()
		{
			return ordinalValue;
		}

		public static TransferMasterType valueOf(string name)
		{
			foreach (TransferMasterType enumInstance in TransferMasterType.valueList)
			{
				if (enumInstance.nameValue == name)
				{
					return enumInstance;
				}
			}
			throw new System.ArgumentException(name);
		}
	}

}